package com.tarena.lbs.basic.web.repository;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.tarena.lbs.basic.web.mapper.UserMapper;
import com.tarena.lbs.pojo.basic.po.UserPO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

@Repository
public class UserRepository {
    @Autowired
    private UserMapper userMapper;

    /**
     * 01、根据用户注册的手机号去查询手机号是否存在（注册过）
     * @param phone
     * @return
     */
    public boolean existsUserByPhone(String phone) {
        //select count(*) from lbs_user where phone
        // 使用QueryWrapper设置查询条件，根据电话号码查询用户
        QueryWrapper queryWrapper=new QueryWrapper();
        queryWrapper.eq("phone",phone);
        // 调用userMapper的selectCount方法，获取符合条件的用户数量（使用的泛型）
        Long total = userMapper.selectCount(queryWrapper);
        // 如果总数量大于0，说明用户存在，返回true；否则返回false
        return total>0;
    }
    /**
     * 保存用户信息
     * @param poParam 待保存的用户信息对象
     */
    public void save(UserPO poParam) {
        userMapper.insert(poParam);
    }

    //02、小程序 用户登录
    public UserPO getUserByPhone(String phone) {
        QueryWrapper<UserPO> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("phone",phone);
        return userMapper.selectOne(queryWrapper);
    }

    //03、小程序查询登录后的用户详情
    public UserPO getUserById(Integer id) {
        return userMapper.selectById(id);
    }


    public void updateStatus(Integer userId, Integer status) {
        //update lbs_user set status=1 where id=#{userId};
        UserPO poParam=new UserPO();
        poParam.setId(userId);
        poParam.setStatus(status);
        userMapper.updateById(poParam);
    }
}
